package com.ym.pms.service;

import com.github.pagehelper.PageInfo;
import com.ym.pms.model.Building;

import java.util.List;

public interface BuildingService {

    /**
     * 添加一个楼栋
     * @param building
     * @return 数据表改动的行数
     */
    int addBu(Building building);

    /**
     * 根据楼栋编号 删除一个楼栋记录
     * @param bu_Coding ：楼栋编号
     * @return 数据表改动的行数
     */
    int deleteBu(String bu_Coding);

    /**
     * 根据Bu_Coding查询待更改的building，再根据building对象中存在的数据进行修改
     * @param building ：存放Building更新内容的building对象
     * @return 数据表改动的行数
     */
    int updateBu(Building building);

    /**
     *  分页查询building表中的所有信息
     * @param pageNum 当前页码
     * @param pageSize 每页大小
     * @return PageInfo封装的包含页面信息的List<Building>;
     */
    PageInfo findAll(int pageNum,int pageSize);

    /**
     * 分页查询楼栋表中用于展示的信息；
     * @return 包含{楼栋编码、楼栋名称、项目id、项目名称、项目位置、区域、物业地址、总面积}的PageInfo封装的List<Building>;
     */
    PageInfo displayInformation(int pageNum,int pageSize);

    /**
     * 通过bu_Coding(主键)来查找楼栋
     * @param bu_Coding 楼栋编码，楼栋表主键
     * @return 楼栋表的pojo类对象
     */
    Building findByCoding(String bu_Coding);

    /**
     * 模糊查询楼栋表
     * @param building
     * @return 查询的结果集
     */
    PageInfo fuzzyQuery(Building building,int pageNum,int pageSize);

    /**
     * 获取当前楼栋表中最大的序号
     * @return 最大序号
     */
    int getMaxNo();

    /**
     * 获取楼栋编码
     * @return 生成的楼栋编码
     */
    String getCoding();


    void deleteAllByItId(String id);
}
